/**
 * 代理模式：
 *    视为一个对象提供一个代用品或者占位符，以便控制它的访问
 * 
 *   分类： 
 *      保护代理
 *      虚拟代理
 * 
 *   优点：
 *     1、可以保护对象
 *     2、优化性能，减少开销很大的对象
 *     3、缓存结果
 *   缺点:
 */

/**
 * 1、例子 图片预加载
 */

const image = (function () { 
    const imageNode = document.createElement('img')
    document.body.appendChild(imageNode)
    return {
        setSrc: function (src) { 
            imageNode.src = src
        }
    }
})()

image.setSrc("http://www.baidu.com/images/bg.png?w=452&h=158")